package com.toubutu.audio.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.toubutu.audio.admin.dto.RolePermissionBindDto;
import com.toubutu.audio.admin.entity.RolePermission;


import java.util.List;

/**
 * 角色-权限绑定关系服务
 * @author 戒燥
 * @since 2023-09-30
 */

public interface RolePermissionService extends IService<RolePermission> {
    /**
     * 根据角色id删除相应绑定关系
     * @param roleId 角色id
     */
    Boolean deleteRolePermissionByRoleId(Integer roleId);

    /**
     *
     * @param permissionId 权限id
     */
    Boolean deletePermissionRoleByPermissionIds(List<Integer> permissionId);

    /**
     * 批量绑定角色-权限关系
     * @param bindDto 绑定关系
     */
    void saveBatch(RolePermissionBindDto bindDto);

    /**
     *
     * @param roleId 根据角色id获取绑定的权限id
     * @return 权限id
     */
    List<Integer> getPermissionIdsByRoleId(Integer roleId);

    /**
     * 获取角色拥有的权限编码
     * @param roleIds 角色id
     * @return 权限编码
     */
    List<String> getPermissionCodeByRoleList(List<Integer> roleIds);
}
